home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / BOBOLI.ZIP / SRC / BOBOLI.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-06-04  |  4.9 KB  |  225 lines

  1. /* 
  2.    BOBOLI THE MIGHTY KNIGHT
  3.    Networked Medieval Conflict
  4. */
  5.  
  6. #include "mgraph.h"
  7.  
  8. #ifndef _boboli_gogo_
  9. #define _boboli_gogo_
  10.  
  11. /* the cmd_ constants are the bits of the command byte of the player
  12.    record.  It is the only real information to be sent across the network
  13.    for each player.  Everything else MUST remain in sync between computers. 
  14. */
  15. #define cmd_up 1  /* command&1 is up key */
  16. #define cmd_lf 2
  17. #define cmd_dn 4
  18. #define cmd_rt 8
  19. #define cmd_at 16 /* command&16 is the attack key */
  20. #define cmd_next 32 /* go to next item */
  21. #define cmd_drop 64 /* drop item */
  22. #define cmd_use  128  /* use item */
  23.  
  24. #define Player_pressed_ESC 0xFF
  25. /* the do_ constants define what "move" the character is executing. */
  26. #define do_stand 0
  27. #define do_walk  1
  28. #define do_melee 2
  29. #define do_ouch  3
  30. #define do_spell 4  /* or whatever special trick this guy has */
  31. #define do_arrow 5  /* this means launching a projectile */
  32. #define do_get   6
  33. #define do_bigouch 7 /* knocked down */
  34. #define do_die   8
  35.  
  36. /* display modes */
  37. #define md_none   0
  38. #define md_normal 1
  39. #define md_boboli 2
  40. #define md_shadow 3
  41. #define md_floor  4 /* same as mode normal, but is drawn before all else */
  42.  
  43. /* item types */
  44. #define it_none     0
  45. /* no item #1, because item numbers must correspond with object #s */
  46. #define it_xbow     2
  47. #define it_fball    3
  48. #define it_inferno  4
  49. #define it_3xbow    5
  50. #define it_elfswd   6
  51. #define it_gntswd   7
  52. #define it_souledge 8
  53. #define it_mirshield 9
  54. #define it_tornado  10
  55. #define it_fxbow    11
  56. #define it_souledge2 12
  57. #define it_greenthumb 13
  58. #define it_invis     14
  59. #define it_shieldspl 15
  60. #define it_healing   16
  61. #define it_summon    17
  62.  
  63. /* map object types */
  64. #define ob_none   0
  65. #define ob_genrtr 1
  66. #define ob_xbow   2
  67. #define ob_fball  3
  68. #define ob_inferno 4
  69. #define ob_3xbow    5
  70. #define ob_elfswd   6
  71. #define ob_gntswd   7
  72. #define ob_souledge 8
  73. #define ob_mirshield 9
  74. #define ob_tornado  10
  75. #define ob_fxbow    11
  76. #define ob_souledge2 12
  77. #define ob_greenthumb 13
  78. #define ob_invis     14
  79. #define ob_shieldspl 15
  80. #define ob_healing   16
  81. #define ob_summon    17
  82. #define ob_flower    18
  83.  
  84. /* generator types */
  85. #define gn_none     0
  86. #define gn_bonehead 1
  87. #define gn_glob     2
  88. #define gn_boboli   3
  89.  
  90. /* projectile types */
  91. #define pr_none  0
  92. #define pr_spark 1
  93. #define pr_arrow 2
  94. #define pr_slime 3
  95. #define pr_splat 4
  96. #define pr_fball 5
  97. #define pr_inferno 6
  98. #define pr_brightspot 7 /* the bright thing right before an inferno lights up */
  99. #define pr_hsprk 8 /* 'hit'spark */
  100. #define pr_tornado 9
  101. #define pr_tornado_hit 10
  102. #define pr_splash 11
  103. #define pr_smoke 12
  104. #define pr_skull 13
  105. #define pr_tornado_done 14
  106. #define pr_shield 15
  107. #define pr_flower 16
  108. #define pr_golem  17
  109. #define pr_burst  18 /* green inferno flame */
  110. #define pr_homing 19 /* homing blob */
  111.  
  112. /* bit fields for 'state' record for each creature */
  113. #define st_invis  1
  114. #define st_invinc 2
  115.  
  116. /* each type of creature has 10 "moves" (walking, attacking, etc.), each
  117.    of which has 25 frames */
  118. #define nummoves 10
  119. #define numsteps 25
  120.  
  121. /* size of maps */
  122. #define mapwidth 128
  123. #define mapheight 128
  124.  
  125. /* size of virtual screen upon which background is drawn */
  126. #define backgdwidth  256
  127. #define backgdheight 256
  128.  
  129. #define maxguys   70
  130. #define maxgen    30
  131. #define numplayers 4
  132. #define maxdisplay 60
  133. #define maxprjctls 100
  134. #define souledgefull 1000 /* 100 hit points are needed to fill Soul Edge */
  135. #define FRAMERATE 35
  136.  
  137. typedef struct {
  138.   byte x,y;
  139.   byte hp;
  140.   byte frame;
  141.   byte kind;
  142.   word timer;
  143. } genrec;
  144.  
  145. typedef struct {
  146.   umkrec u;
  147.   short x,y,cmpy;
  148.   byte mode;
  149.   byte value;
  150. } displayrec;
  151.  
  152. typedef struct {
  153.   char name[17];
  154.   byte color;
  155.   byte command;
  156.   byte who;     /* which creature is he?  guy[who] */
  157.   byte victimkind;  /* for hitpoint display */
  158.   byte victimhp;
  159.   byte victimcurhp;
  160.   byte hptimer;
  161.   byte strength,speed,intellect,armor,skill;
  162.   byte magic,selfhp;
  163.   byte magictimer;
  164.   byte selfhptimer;
  165.   byte realmagic,realselfhp;
  166.   byte inv[6];
  167.   byte using;
  168.   byte spell;
  169.   byte skillmax;
  170.   char message[17];
  171.   byte messtimer;
  172.   word souledgecharge;
  173.   word invistimer;
  174.   word invinctimer;
  175.   byte homex,homey;
  176. } playerrec;
  177.  
  178. typedef struct {
  179.   short x,y;
  180.   byte z;
  181.   char dx,dy,dz;
  182.   short hp;
  183.   byte kind;
  184.   byte doing;
  185.   byte dir;
  186.   byte frame;
  187.   byte control;
  188.   byte nearfoe;
  189.   byte friend;
  190.   byte timer;
  191.   byte state;
  192. } creature;
  193.  
  194. typedef struct {
  195.   short x,y;
  196.   byte z;
  197.   char dx,dy;
  198.   char dz;
  199.   byte dir;
  200.   byte kind;
  201.   byte timer;
  202.   byte launchguy;
  203.   byte launcher; /* the 'control' value for the guy who launched it */
  204. } projectile;
  205.  
  206. typedef struct {
  207.   byte floor;
  208.   byte object;
  209.   byte shadow;
  210. } tilerec;
  211.  
  212. typedef tilerec maprec[mapwidth*mapheight];
  213.  
  214. typedef byte tileset[128][256];
  215.  
  216. typedef struct {
  217.   byte x,y;
  218. } centerrec;
  219.   
  220. typedef centerrec centerray[256];
  221.  
  222. extern playerrec player[numplayers];
  223.  
  224. #endif
  225.